#ifndef __QUEUE_H__
#define __QUEUE_H__

typedef struct qnode {
    int val;
    struct qnode* next;
} qnode;

typedef struct queue{
    qnode* head;
    qnode* tail;
} queue;

/**
 * 创建一个链队列
 */
queue* create_queue();

/**
 * 入队
 * @param q 队列指针
 * @param val 新添加的元素
 */
void push(queue* q, int val);

/**
 * 出队
 * @param q 队列指针
 * @return 返回队头元素
 */
int pop(queue* q);

/**
 * 队列的释放
 */
void release_queue(queue* q);


#endif